Описание структуры JSON-конфигурации для отбора

Описание структуры JSON-конфигурации для отбора

JSON-конфигурация содержит поля type и value.

Поле type указывает тип фильтра для документа. Поле value указывает значения, которые должны содержаться в узле.
Структура и содержимое поля value зависят от типа фильтра.

 

Тип фильтра Описание
attribute Отбор атрибутов с указанными свойствами.
hasattribute Отбор узлов-элементов, содержащих атрибуты с указанными свойствами.
elementname Отбор узлов-элементов, имя тега которых соответствует указанному шаблону.
not Отбор узлов, не соответствующих указанному фильтру.
parent Отбор узлов, родитель которых содержит указанные свойства.
intersection Отбор узлов, отвечающих условиям нескольких фильтров одновременно.
union Отбор узлов, отвечающих условиям одного из указанных фильтров.
nodeType Отбор узлов по типу DOM.

attribute

Отбор атрибутов с указанными свойствами.
К значениям данного фильтра применимы операции:

Пример:

{
  "type": "attribute",
  "value": {
    "value": "width",
    "operation": "nameequals"
  }
}

Во всех узлах документа будут отобраны атрибуты "width".
Все типы фильтров

hasattribute

Отбор узлов-элементов, содержащих атрибуты с указанными свойствами.
К значениям данного фильтра применимы операции:

Пример:

{
  "type": "attribute",
  "value": {
    "value":
      "([a-z]*bord[a-z]*)",
    "operation":
      "namematchesregex"
  }
}

Будут отобраны все элементы, атрибуты которых соответствуют заданному выражению ([a-z]*bord[a-z]*).
Все типы фильтров

elementname

Отбор узлов-элементов, имя тега которых соответствует указанному шаблону.
К значениям данного фильтра применимы операции:

Пример:

{
  "type": "elementname",
  "value": { 
     "value": "di", 
     "operation": "startswith" 
   }
}

Будут отобраны узлы "dir" и "div".
Все типы фильтров

not

Отбор узлов, не соответствующих указанному фильтру.

Пример:

{
  "type": "not",
  "value": {
             "type": "elementname",
              "value": {
                         "value": "di",
                          "operation": "startswith"
                          }
               }            
}

Будут отобраны узлы, имя тега которых не содержит "di".

parent

Отбор узлов, родитель которых содержит указанные свойства.

Пример:

{
  "type": "parent",
  "value": {
                "value": "div",
                "operation": "equals"
              }
}

Будут отобраны узлы, родителем которых является элемент "div".
Все типы фильтров

 intersection

Отбор узлов, отвечающих условиям нескольких фильтров одновременно.

Пример:

{
  "type": "intersection",
  "value":
    [{Фильтр1},  {Фильтр2}]
}

Где {Фильтр1}, {Фильтр2} - любые из доступных фильтров.
Будут отобраны узлы, удовлетворяющие условиям обоих фильтров.
Все типы фильтров

union

Отбор узлов, отвечающих условиям одного из указанных фильтров.

Пример:

{
  "type": "union",
  "value":
    [{ Фильтр1}, { Фильтр2}]
}

Где {Фильтр1}, {Фильтр2} - любые из доступных фильтров.
Будут отобраны узлы, отвечающие либо отбору {Фильтр1}, либо отбору {Фильтр2}.
Все типы фильтров>

const

Для любого узла фильтр будет возвращать true или false, в зависимости от значения value.

Пример:

{
  "type": "parent",
  "value": {
               "type": "const",
               "value": true
             }
}

С помощью такого отбора можно узнать, существует ли предок (parent) у узла.
Все типы фильтров

nodeType

Отбор узлов по типу DOM. Можно указать следующие типы узлов:

Пример:

{
  "type": "nodetype",
  "value": {
    "value": ["element", "text"]
  }
}

Будут отобраны узлы типа text.
Все типы фильтров


     Методическая информация